﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;
using SIMCObjetoNegocio;
using SIMCPresenter;

public partial class Account_SeleccionDeRol : System.Web.UI.Page, IConsultarRolesView
{
    private ConsultarRolesPresenter m_Presenter;
    public event EventHandler<SearchEventArgs<int>> BuscarRolesDeUsuario;
    private MembershipUsuario usuario;
    public event EventHandler<SearchEventArgs<Usuario>> ColocarRolPorDefecto;

    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        m_Presenter = new ConsultarRolesPresenter(this);
        usuario = ((MembershipUsuario)Session["Usuario"]);
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            BuscarRolesDeUsuario(null, new SearchEventArgs<int>(usuario.UserId));
        }
    }
    protected void btnContinuar_Click(object sender, EventArgs e)
    {
        usuario.rol = new Rol
        {
            Id = ddlRoles.SelectedValue,
            Descripcion = ddlRoles.SelectedItem.Text
        };

        Response.Redirect("~/Principal.aspx");
        //AQUI SE DEBERIA GUARDAR EL ROL POR DEFECTO DE LA PERSONA.
    }
    public void BindRoles(IList<Rol> listaRoles)
    {
        ddlRoles.DataTextField = "Descripcion";
        ddlRoles.DataValueField = "Id";
        ddlRoles.DataSource = listaRoles;
        ddlRoles.DataBind();
    }
    protected void btnContinuarYPordefecto_Click(object sender, EventArgs e)
    {
        Rol rolPorDefecto = new Rol
        {
            Id = ddlRoles.SelectedValue,
            Descripcion = ddlRoles.SelectedItem.Text
        };

        usuario.rol = rolPorDefecto;//Este paso es para que se quede este perfil en sesion

        Usuario usuarioObjeto = new Usuario
        {
            Rol = rolPorDefecto,
            Id = usuario.UserId
        };

        ColocarRolPorDefecto(null, new SearchEventArgs<Usuario>(usuarioObjeto));
        Response.Redirect("~/Principal.aspx");
    }

    public void MostrarMensaje(string p_Mensaje, bool p_Exito)
    {
        lblMensaje.Text = p_Mensaje;
        lblMensaje.Visible = true;
    }
}